<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "https://www.w3.org/TR/html4/loose.dtd">
<html lang="zh-CN"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta http-equiv="Content-Language" content="zh-CN"><link href="stylesheet.css" media="all" rel="stylesheet" type="text/css">
<title>ALTER INDEX</title>
<script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?d286c55b63a3c54a1e43d10d4c203e75"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script>
</head><body class="REFENTRY">
<div>
<table summary="Header navigation table" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><th colspan="5" align="center" valign="bottom">PostgreSQL 8.2.3 中文文档</th></tr>
<tr><td width="10%" align="left" valign="top"><a href="sql-altergroup.html" accesskey="P">后退</a></td><td width="10%" align="left" valign="top"><a href="sql-altergroup.html">快退</a></td><td width="60%" align="center" valign="bottom"></td><td width="10%" align="right" valign="top"><a href="sql-alterlanguage.html">快进</a></td><td width="10%" align="right" valign="top"><a href="sql-alterlanguage.html" accesskey="N">前进</a></td></tr>
</table>
<hr align="LEFT" width="100%"></div>
<h1><a name="SQL-ALTERINDEX"></a>ALTER INDEX</h1>
<div class="REFNAMEDIV"><a name="AEN44218"></a><h2>名称</h2>ALTER INDEX&nbsp;--&nbsp;改变一个索引的定义</div>
<a name="AEN44221"></a>
<div class="REFSYNOPSISDIV"><a name="AEN44223"></a><h2>语法</h2>
<pre class="SYNOPSIS">ALTER INDEX <tt class="REPLACEABLE"><i>name</i></tt> RENAME TO <tt class="REPLACEABLE"><i>new_name</i></tt>
ALTER INDEX <tt class="REPLACEABLE"><i>name</i></tt> SET TABLESPACE <tt class="REPLACEABLE"><i>tablespace_name</i></tt>
ALTER INDEX <tt class="REPLACEABLE"><i>name</i></tt> SET ( <tt class="REPLACEABLE"><i>storage_parameter</i></tt> = <tt class="REPLACEABLE"><i>value</i></tt> [, ... ] )
ALTER INDEX <tt class="REPLACEABLE"><i>name</i></tt> RESET ( <tt class="REPLACEABLE"><i>storage_parameter</i></tt> [, ... ] )</pre>
</div>
<div class="REFSECT1"><a name="AEN44234"></a><h2>描述</h2>
<p><tt class="COMMAND">ALTER INDEX</tt> 改变一个现有索引的定义。它有几种子形式：</p>
<div class="VARIABLELIST">
<dl>
<dt><tt class="LITERAL">RENAME</tt></dt>
<dd><p>只改变索引的名字。对存储的数据没有影响。</p></dd>
<dt><tt class="LITERAL">SET TABLESPACE</tt></dt>
<dd><p>改变索引的表空间为指定表空间，并且把索引相关的数据文件移动到新的表空间里。又见 <a href="sql-createtablespace.html"><i>CREATE TABLESPACE</i></a></p></dd>
<dt><tt class="LITERAL">SET ( <tt class="REPLACEABLE"><i>storage_parameter</i></tt> = <tt class="REPLACEABLE"><i>value</i></tt> [, ... ] )</tt></dt>
<dd><p>改变索引的一个或多个索引方法特定的存储参数。参见 <a href="sql-createindex.html"><i>CREATE INDEX</i></a> 获取可用参数的细节。需要注意的是索引内容不会被这个命令立即修改，根据参数的不同，你可能需要使用 <a href="sql-reindex.html"><i>REINDEX</i></a> 重建索引来获得期望的效果。</p></dd>
<dt><tt class="LITERAL">RESET ( <tt class="REPLACEABLE"><i>storage_parameter</i></tt> [, ... ] )</tt></dt>
<dd><p>重置索引的一个或多个索引方法特定的存储参数为缺省值。与 <tt class="LITERAL">SET</tt> 一样，可能需要使用 <tt class="LITERAL">REINDEX</tt> 来完全更新索引。</p></dd>
</dl>
</div>
</div>
<div class="REFSECT1"><a name="AEN44268"></a><h2>参数</h2>
<div class="VARIABLELIST">
<dl>
<dt><tt class="REPLACEABLE"><i>name</i></tt></dt>
<dd><p>要修改的索引的名字(可以有模式修饰)</p></dd>
<dt><tt class="REPLACEABLE"><i>new_name</i></tt></dt>
<dd><p>索引的新名字</p></dd>
<dt><tt class="REPLACEABLE"><i>tablespace_name</i></tt></dt>
<dd><p>索引将移动到的表空间的名字</p></dd>
<dt><tt class="REPLACEABLE"><i>storage_parameter</i></tt></dt>
<dd><p>索引方法特定的存储参数的名字</p></dd>
<dt><tt class="REPLACEABLE"><i>value</i></tt></dt>
<dd><p>索引方法特定的存储参数的新值。根据参数的不同，这可能是一个数字或单词。</p></dd>
</dl>
</div>
</div>
<div class="REFSECT1"><a name="AEN44296"></a><h2>注意</h2>
<p>这些操作也可以用 <a href="sql-altertable.html"><i>ALTER TABLE</i></a> 进行。<tt class="COMMAND">ALTER INDEX</tt> 实际上只是 <tt class="COMMAND">ALTER TABLE</tt> 用于索引的形式的一个别名</p>
<p>以前还有一个 <tt class="COMMAND">ALTER INDEX OWNER</tt> 变种，但是现在忽略了(带一个警告)。一个索引不能有一个和其表的属主不同的所有者。改变该表的所有者将自动改变索引的所有者。</p>
<p>不允许修改系统表索引的任何部分。</p>
</div>
<div class="REFSECT1"><a name="AEN44305"></a><h2>例子</h2>
<p>重命名一个现有的索引：</p>
<pre class="PROGRAMLISTING">ALTER INDEX distributors RENAME TO suppliers;</pre>
<p>把一个索引移动到另外一个表空间：</p>
<pre class="PROGRAMLISTING">ALTER INDEX distributors SET TABLESPACE fasttablespace;</pre>
<p>改变索引的占位因数(假定该索引方法支持它)：</p>
<pre class="PROGRAMLISTING">ALTER INDEX distributors SET (fillfactor = 75);
REINDEX INDEX distributors;</pre>
</div>
<div class="REFSECT1"><a name="AEN44313"></a><h2>兼容性</h2>
<p><tt class="COMMAND">ALTER INDEX</tt> 是 PostgreSQL 扩展</p>
</div>
<div class="REFSECT1"><a name="AEN44318"></a><h2>又见</h2><a href="sql-createindex.html"><i>CREATE INDEX</i></a>, <a href="sql-reindex.html"><i>REINDEX</i></a></div>
<div>
<hr align="LEFT" width="100%">
<table summary="Footer navigation table" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td width="33%" align="left" valign="top"><a href="sql-altergroup.html" accesskey="P">后退</a></td><td width="34%" align="center" valign="top"><a href="index.html" accesskey="H">首页</a></td><td width="33%" align="right" valign="top"><a href="sql-alterlanguage.html" accesskey="N">前进</a></td></tr>
<tr><td width="33%" align="left" valign="top">ALTER GROUP</td><td width="34%" align="center" valign="top"><a href="sql-commands.html" accesskey="U">上一级</a></td><td width="33%" align="right" valign="top">ALTER LANGUAGE</td></tr>
</table>
</div>
</body></html>